const Comment = require('../models/comment');
// 导入数据库连接池
const pool = require('../config/db');
const create = async (req, res) => {
  try {
    const comment = await Comment.create(req.body);
    res.status(201).json(comment);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

const getById = async (req, res) => {
  try {
    const { zpid } = req.params; // 修正参数名与路由匹配
    let query = 'SELECT * FROM comments WHERE zpid = ?'; // 修正表名（假设为comments）
    // 新增SQL执行代码
    const [comment] = await pool.execute(query, [zpid]); 
    
    if (!comment) {  // 现在comment已定义
      return res.status(404).json({ error: '评论未找到' });
    }
    res.json(comment);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

const getAll = async (req, res) => {
  try {
    const comments = await Comment.findAll();
    res.json(comments);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

const update = async (req, res) => {
  try {
    const { id } = req.params;
    const [updated] = await Comment.update(req.body, {
      where: { id }
    });
    
    if (updated) {
      const comment = await Comment.findByPk(id);
      res.json(comment);
    } else {
      res.status(404).json({ error: '评论未找到' });
    }
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

const remove = async (req, res) => {
  try {
    const { id } = req.params;
    const deleted = await Comment.destroy({
      where: { id }
    });
    
    if (deleted) {
      res.status(204).send();
    } else {
      res.status(404).json({ error: '未找到评论' });
    }
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

module.exports = { create, getById, getAll, update, remove };

